# Declares the definitions in highgui to be imported in the cyopencv implementation

#import necessary data types
from c_cxcore cimport IplImage, CvArr

cdef extern from "highgui.h":

    int cvNamedWindow(char* name, int flags)
    void cvShowImage(char* name, CvArr* image)
    void cvResizeWindow(char* name, int width, int height)
    void cvMoveWindow(char* name, int x, int y)
    void cvDestroyWindow(char* name)
    void cvDestroyAllWindows()
    void* cvGetWindowHandle(char* name)
    char* cvGetWindowName(void* window_handle)
    IplImage* cvLoadImage(char* filename, int iscolor)
    int cvWaitKey(int delay)
    
    struct CvCapture:
        pass
        
    CvCapture* cvCreateFileCapture(char* filename)
    CvCapture* cvCreateCameraCapture(int index)
    int cvGrabFrame(CvCapture* capture)
    IplImage* cvRetrieveFrame(CvCapture* capture, int streamIdx)
    IplImage* cvQueryFrame(CvCapture* capture)
    void cvReleaseCapture(CvCapture** capture)
    double cvGetCaptureProperty(CvCapture* capture, int property_id)
    int cvSetCaptureProperty(CvCapture* capture, int property_id, double value)